package com.fsgom.common.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.springframework.core.io.Resource;

public final class ResourceUtils {
	private static final Pattern PATTERN = Pattern.compile("\\[([^\\]]+)\\]");

	/**
	 * 생성자 (호출되지 않음)
	 */
	private ResourceUtils() {
		throw new UnsupportedOperationException();
	}

	/**
	 * {@link Resource}가 읽을 수 있는지 확인한다
	 * 
	 * @param resource {@link Resource}
	 * @return 읽을 수 있으면 true
	 */
	public static boolean isValid(Resource resource) {
		if (resource == null) {
			return false;
		}

		if (!resource.exists()) {
			return false;
		}

		if (!resource.isReadable()) {
			return false;
		}

		return true;
	}

	/**
	 * {@link Resource}의 파일 이름을 가져온다
	 * 
	 * @param resource {@link Resource}
	 * @return 파일 이름
	 */
	public static String getFilename(Resource resource) {
		String description = resource.getDescription();
		Matcher matcher = PATTERN.matcher(description);
		return matcher.find() ? matcher.group(1) : description;
	}
}
